
package model;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * @author Lucas Amaral
 */
public class FilmesModel {
    private Map<Integer, Filme> filmes = new LinkedHashMap<>();
    private Connection c;
    private Statement st;
    
    public FilmesModel(Connection c) {
        this.c = c;
        try {
            st = (Statement) c.createStatement();
        } catch (SQLException ex) {
            Logger.getLogger(SalasModel.class.getName()).log(Level.SEVERE, null, ex);
        }
        getSelecionaFilmes();
    }

    public Map<Integer, Filme> getFilmes() {
        return filmes;
    }
    
    public void getSelecionaFilmes() {
        String query;
        try {
            query = "select id, nome, emCartaz from FILME order by 2;";
            ResultSet rs = st.executeQuery(query);
            if (rs != null) {
                while (rs.next()) {
                    Filme filme  = new Filme();
                    filme.setId(rs.getInt("id"));
                    filme.setNome(rs.getString("nome"));
                    filme.setEmCartaz(rs.getBoolean("emCartaz"));
                    getFilmes().put(filme.getId(), filme);
                }
            }
        } catch (Exception e) {/**/}
    }
    
    public void inserirFilme(Filme filme) {
         try {
             String query = "insert into FILME (nome, emCartaz) values ('"+ filme.getNome() + "'," + filme.getEmCartaz() + ")";
             st.executeUpdate(query);
             getFilmes().put(filme.getId(), filme);
         } catch (Exception e) {
             System.out.println(e);
         }
    }
    
    public void excluirFilme(Filme filme) {
        try {
            String query = "delete from FILME where id=" + filme.getId();
            st.executeUpdate(query);
            getFilmes().remove(filme.getId());
        } catch (Exception e) {}
    }
    
    public void alterarFilme(Filme filme) {
        try {
            String query = "update FILME set nome= '" + filme.getNome() + "', emCartaz=" + filme.getEmCartaz() + " where id=" + filme.getId();
            st.execute(query);
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

